#ifndef __MYSQL_CONN__
#define __MYSQL_CONN__
#include "threadPool.h"
#include <mysql/mysql.h>
#define POOL_SIZE 10

// 池中的一个数据库连接及其使用状态
typedef struct{
    MYSQL *conn; //指向一个 MySQL 连接对象
    int is_use; // 标记该连接是否正在被使用。0 表示空闲，1 表示被占用。
}Mysql_conn_t;

// 池结构体
typedef struct {
    Mysql_conn_t pool[POOL_SIZE]; // 存放所有连接对象的数组，数组大小由 POOL_SIZE 决定
    pthread_mutex_t lock; // 设置锁来保证线程安全
    char host[64],user[64],password[64],db[64];
    unsigned int port;
} ConnectionPool_t;

// 连接池初始化
int mysql_pool_init(ConnectionPool_t *pool, const char *host, const char *user, const char *password, const char *db, unsigned int port);
// 获取一个连接
int mysql_pool_get(ConnectionPool_t *pool,MYSQL **recvPool);
// 释放连接
int freeConn(ConnectionPool_t *pool,MYSQL *conn);
//销毁池
int destroyPool(ConnectionPool_t *pool);

#endif
